package game.support;

public class EmplacementImpl implements Emplacement {
    private Support haut = null;
    private Emplacement suivant = null;

    public Emplacement premierEmplacementOccupe() {
        if (this.estOccupe()) {
            return this;
        }

        try {
            return this.suivant.premierEmplacementOccupe();
        } catch (NullPointerException npe) {
            return null;
        }
    }

    public Support sommet() {
        try {
            return haut.sommet();
        } catch (NullPointerException npe) {
            return this;
        }
    }

    public Support enbas() {
        return this;
    }

    public boolean estOccupe() {
        return haut != null;
    }

    public Emplacement suivant() {
        return suivant;
    }

    public void affecterSuivant(Emplacement emplacementSuivant) {
        suivant = emplacementSuivant;
    }

    public void recevoir(Support top) { haut = top; }

    public void sePoser(Support support) { return; }
    
    public Support haut() {
        return haut;
    }
}
